#include <stack>
#include <iostream>
using namespace std;
int main()
{
    int a[1000010];
    int operation[2000010];
    int i = 0;
    int m = 0;
    int n = 0;
    int flag = 0;
    scanf("%d", &n);
    scanf("%d", &m);
    for (i = 0; i < n; i++)
    {
        scanf("%d", a + i);
    }

    int step = 0, b = 1;
    stack<int> s;
    s.push(0);
    for (i = 0; i < n; i++)
    {
        while (s.top() < a[i])
        {
            s.push(b++);
            operation[step++] = 1;
        }

        if (s.size() > m + 1)
        {
            printf("mei ban fa\n");
            flag = 1;
            break;
        }
        if (s.top() == a[i])
        {
            s.pop();
            operation[step++] = 0;
        }
    }

    if (flag != 1)
    {
        if (s.size() == 1 && s.top() == 0)
        {
            for (i = 0; i < step; i++)
            {
                if (operation[i] == 1)
                    printf("jin\n");
                else
                    printf("da\n");
            }
        }
        else
            printf("mei ban fa\n");
    }
    return 0;
}

// #include <stdio.h>
// #include <math.h>

// int main()
// {
//     int n;

//     int arr[31] = {0};
//     scanf("%d", &n);
//     arr[2] = 1, arr[3] = 1;
//     for (int i = 4; i <= n; i++)
//     {
//         for (int k = 2; k < i; k++)
//         {
//             arr[i] += arr[k] * arr[i - k + 1];
//         }
//     }
//     printf("%d\n", arr[n]);
//     return 0;
// }

// // 题目的实质是判断栈的出去方法是否合法
// int main()
// {
//     // 由于默认的是升序队列

//     return 0;
// }

// int arr[501][501] = {0};
// int main()
// {
//     int m = 0;
//     int n = 0;
//     scanf("%d %d", &m, &n);
//     for (int i = 0; i < m; ++i)
//     {
//         for (int j = 0; j < n; ++j)
//             scanf("%d", &arr[i][j]);
//     }
//     for (int i = 0; i < n; ++i)
//         arr[m][i] = -1;
//     for (int i = 0; i < m; ++i)
//         arr[i][n] = -1;
//     int result = 0;
//     // 只找右边的
//     for (int i = 0; i < m; ++i)
//     {
//         for (int j = 0; j < n; ++j)
//         {

//             if (i == m - 1)
//             {
//                 // 只能找右
//                 if (arr[i][j + 1] == arr[i][j])
//                     ++result;
//             }
//             else
//             {
//                 // 下 右
//                 if (arr[i + 1][j] == arr[i][j])
//                     ++result;
//                 if (arr[i][j + 1] == arr[i][j])
//                     ++result;
//             }
//         }
//     }
//     printf("%d\n", result);
//     return 0;
// }

// int main()
// {

//     int arr[100] = {0};
//     int n = 0;
//     scanf("%d", &n);
//     for (int i = 0; i < n; ++i)
//     {
//         scanf("%d", arr + i);
//     }
//     int m = 0;
//     scanf("%d", &m);
//     int a = 0;
//     int b = 0;
//     int c = 0;
//     for (int i = 0; i < m; ++i)
//     {
//         scanf("%d %d %d", &a, &b, &c);
//         for (int j = a; a <= b && j <= b; ++j)
//         {
//             arr[j - 1] += c;
//         }
//         for (int j = b; a > b && j <= a; ++j)
//         {
//             arr[j - 1] += c;
//         }
//     }
//     for (int i = 0; i < n; ++i)
//         printf("%d ", arr[i]);
//     printf("\n");

//     return 0;
// }

// int main()
// {

//     char mode = 0;
//     int num = 0;
//     while (scanf("%c %d", &mode, &num) != EOF)
//     {
//         getchar();
//         if (mode == '@')
//         {
//             break;
//         }
//         else
//         {
//             for (int i = num - 1; i >= 0; --i)
//             {
//                 for (int j = 0; j < i; ++j)
//                     printf(" ");
//                 if (i == num - 1)
//                 {
//                     printf("%c", mode);
//                 }
//                 else if (i == 0)
//                 {
//                     for (int j = 0; j < 2 * num - 1; ++j)
//                         printf("%c", mode);
//                 }
//                 else
//                 {
//                     printf("%c", mode);
//                     for (int j = 0; j < 2 * (num - 1 - i) - 1; ++j)
//                         printf(" ");
//                     printf("%c", mode);
//                 }
//                 printf("\n");
//             }
//         }
//         printf("\n");
//     }
//     return 0;
// }

// int main()
// {

//     long long pre = -1;
//     long long after = 0;
//     long long max = 0;
//     long long first = 0;
//     int n = 0;
//     scanf("%d", &n);
//     for (int i = 0; i < n; ++i)
//     {
//         scanf("%lld", &after);
//         if (pre == -1)
//         {
//             first = after;
//             max = after;
//         }
//         else
//         {

//             max = (abs(after - pre) > max) ? abs(after - pre) : max;
//         }
//         pre = after;
//     }
//     if (first == max)
//         max = 0;
//     printf("%lld\n", max);
//     return 0;
// }

// int main()
// {
//     int s = 0;
//     scanf("%d", &s);
//     if (s >= 90)
//         printf("A\n");
//     else if (s >= 80)
//         printf("B\n");
//     else if (s >= 70)
//         printf("C\n");
//     else if (s >= 60)
//         printf("D\n");
//     else
//         printf("E\n");
//     return 0;
// }

// int main()
// {
//     int N = 0;
//     scanf("%d", &N);
//     printf("10yuan:%d\n", N / 10);
//     N %= 10;
//     printf("5yuan:%d\n", N / 5);
//     N %= 5;
//     printf("1yuan:%d\n", N);
//     return 0;
// }